Пульт.Онлайн /

Опрос GPIO и портов различных устройств

Пример работы со входами/выходами GPIO различных устройств с помощью драйвера командной строки (drv_cmd) и драйвера MQTT (drv_mqtt). Предполагается, что переменные добавляются в уже существующий прототип, а также что уже создан узел с данным прототипом (см. Простейший проект)


Чтение и запись входов/выходов роутера Teleofis RTU1068
Чтение показания датчика на шине 1wire контроллера JetHome
Чтение и изменение выходов A1 - A4 контроллера Wiren Board 7.4


Чтение и запись входов/выходов роутера Teleofis RTU1068

  1. В прототипе, на вкладке CMD, заводим переменную драйвера командной строки

  2. Заполняем следующие поля:

    • Формат: Число

    • Команда чтения: cat /dev/pd0/value

    • Команда записи:

        echo out > /dev/pd0/direction
        echo %value% > /dev/pd0/value
      
  3. Сохраняем прототип, выполняем сборку

  4. Теперь в значение переменной считывается значение пина pd0, а при изменении значения переменной оно записывается в пин pd0:

    • echo out > /dev/pd0/direction - переключает пин на выход
    • echo %value% > /dev/pd0/value - устанавливает 1 или 0 на пине

Чтение показания датчика на шине 1wire контроллера JetHome

  1. В прототипе, на вкладке CMD, заводим переменную драйвера командной строки

  2. Заполняем следующие поля:

    • Формат: Число
    • Команда чтения: (cat /sys/bus/w1/devices/28-0319a27910bf/w1_slave | grep "t=" | cut -d "=" -f2)
  3. Сохраняем прототип, выполняем сборку

Здесь мы читаем значение датчика с ID 28-0319a27910bf

Чтение и изменение выходов A1 - A4 контроллера Wiren Board 7.4

Пример актуален для прошивки 7.4.
Выходы A1 - A4 имеют два состояния:

  • 1 - включен (контакт замкнут на GND)
  • 0 - отключен (контакт разомкнут, может использоваться как аналоговый вход)

Состояние выходов A1 - A4 считывается через следующие MQTT-топики:

  • /devices/wb-adc/controls/A<N> - аналоговое измеренное напряжения на входе
  • /devices/wb-gpio/controls/A<N>_IN - дискретное измеренное напряжения на входе (0|1)
  • /devices/wb-gpio/controls/A<N>_OUT - дискретное состояние выхода (1 - замкнут на GND, 0 - разомкнут)

Выходы A1 - A4 управляются через следующие MQTT-топики:

  • /devices/wb-gpio/controls/A<N>_OUT/on - 1 - замкнуть на GND, 0 - разомкнуть.

Где N - номер выхода, 1 - 4.

Пример чтения измеренного аналогового значения напряжения входа A1 (входы A2 - A4 читаются аналогично):

  1. В прототипе, на вкладке MQTT, заводим переменную драйвера MQTT

  2. Заполняем следующие поля:

    • Подписка: /devices/wb-adc/controls/A1
    • Хост: <IP-АДРЕС-КОНТРОЛЛЕРА>
  3. Сохраняем прототип, выполняем сборку

Здесь мы читаем в переменную измеренное аналоговое значение напряжения на входе A1.

Пример чтения измеренного дискретного значения напряжения входа A1:

  1. В прототипе, на вкладке MQTT, заводим переменную драйвера MQTT

  2. Заполняем следующие поля:

    • Подписка: /devices/wb-gpio/controls/A1_IN
    • Хост: <IP-АДРЕС-КОНТРОЛЛЕРА>
  3. Сохраняем прототип, выполняем сборку

Здесь мы читаем в переменную измеренное дискретное значение напряжения на входе A1 (1, если на входе есть напряжение, иначе - 0).

Пример управления состоянием выхода A1:

  1. В прототипе, на вкладке MQTT, заводим переменную драйвера MQTT

  2. Заполняем следующие поля:

    • Подписка: /devices/wb-gpio/controls/A1_OUT/on
    • Хост: <IP-АДРЕС-КОНТРОЛЛЕРА>
  3. Сохраняем прототип, выполняем сборку

Запись 1 в переменную замыкает выход на GND.
Запись 0 в переменную размыкает выход.

  Email
   fdb_list
   fdb_load
   fdb_move
   fdb_paths
   node_list
   subscribe
   var_get
   var_list
   var_set